﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace ERPStore.QuoteCart.Repositories
{
	/// <summary>
	/// Stockage des données liées aux paniers
	/// </summary>
	public interface IQuoteCartRepository
	{
		/// <summary>
		/// Retrouve la liste des paniers en cours via l'indentifiant de visiteur
		/// </summary>
		/// <param name="visitorId">The visitor id.</param>
		/// <returns></returns>
		IQueryable<Datas.QuoteCart> GetQuoteCartList();
		/// <summary>
		/// Sauvegarde le panier
		/// </summary>
		/// <param name="cart">The cart.</param>
		void Save(Models.QuoteCart cart, ERPStore.Models.UserPrincipal principal);
		/// <summary>
		/// Supprime un panier avec son Id
		/// </summary>
		/// <param name="cartId">The cart id.</param>
		void Remove(string cartId);
		/// <summary>
		/// Change le panier courant pour un visiteur donné
		/// </summary>
		/// <param name="cartId">The cart id.</param>
		/// <param name="visitorId">The visitor id.</param>
		void ChangeCurrent(string cartId, string visitorId);
	}
}
